package com.kaisu.blog.application.user.service;


import com.kaisu.blog.application.dto.PageDTO;
import com.kaisu.blog.application.user.dto.*;
import org.springframework.data.domain.Page;

import java.util.Set;

/**
 * @author kaisu
 */
public interface UserService {
    LoginDTO login(String account, String password);

    void create(UserCreateDTO dto);

    void update(UserUpdateDTO dto);

    void updatePassword(String password, String newPassword);

    void updateAvatar(String fileId);

    void resetPassword(String id, String password);

    void enable(String id);

    void disable(String id);

    Page<UserDTO> page(PageDTO page);

    UserDTO currentUser();

    void follow(String followingUserId);

    void unfollow(String followingUserId);

    Set<FollowDTO> followers();

    Set<FollowDTO> followings(String key);
}
